﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Negocios
{
    public class ClienteBO
    {
        private string cpf;

        public string Cpf
        {
            get { return cpf; }
            set
            {
                if (value == String.Empty )
                {
                    throw new BOException("CPF não pode ser vazio");
                }
                else
                {
                    if (value.Length != 11)
                    {
                        throw new BOException("CPF deve possuir 11 caracteres");
                    }
                    cpf = value;
                }
            }
        }

        private string nome;

        public string Nome
        {
            get { return nome; }
            set 
            {
                if (value == String.Empty)
                {
                    throw new BOException("Nome não pode ser vazio");
                }
                else
                {
                    if (value.Length > 50)
                    {
                        throw new BOException("Nome deve possuir no maximo 50 caracteres");
                    }
                    nome = value;
                }
            }
        }

        private string endereco;

        public string Endereco
        {
            get { return endereco; }
            set 
            {
                if (value == String.Empty)
                {
                    throw new BOException("Endereço não pode ser vazio");
                }
                else
                {
                    if (value.Length >100)
                    {
                        throw new BOException("Endereco deve possuir no maximo 100 caracteres");
                    }
                    endereco = value;
                }
            }
        }

        private string telefone;

        public string Telefone
        {
            get { return telefone; }
            set
            {
                if (value == String.Empty)
                {
                    throw new BOException("Telefone não pode ser vazio");
                }
                else
                {
                    if (value.Length !=12)
                    {
                        throw new BOException("Telefone deve possuir 12 caracteres");
                    }
                    telefone = value;
                }
            }
        }

        private string email;

        public string Email
        {
            get { return email; }
            set
            {
                if (value == String.Empty)
                {
                    throw new BOException("Email não pode ser vazio");
                }
                else
                {
                    email = value;
                }
            }
        }

        
        /*private List<Passagem> passagens;

        public List<Passagem> Passagens
        {
            get { return passagens; }
            set { passagens = value; }
        }
        */
        private List<PacoteBO> pacotes;

        public List<PacoteBO> Pacotes
        {
            get { return pacotes; }
            set { pacotes = value; }
        }

        public override string ToString()
        {
            return Nome;
        }
    }
}
